.button {
    --button-color: var(--ifm-color-primary);
    --button-hover-color: #c2185b;
    width: 208px;
    height: 50px;
    font-size: 0.9rem;
    font-weight: 500;
    background: var(--button-color);
    color: #fff;
    position: relative;
    text-align: center;
    cursor: pointer;
    border-radius: 0.5rem;
    border: 0;
    text-transform: uppercase;
    padding: 0.7rem 0;
    margin: 13px 13px 12px 12px;
    transition: color 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);

    &::before {
        content: '';
        position: absolute;
        z-index: 1;
        left: 0;
        top: 0;
        width: 0;
        height: 100%;
        border-radius: inherit;
        background: var(--button-hover-color);
        display: block;
        transition: width 0.25s cubic-bezier(0.215, 0.61, 0.355, 1);
    }

    .buttonShadow {
        width: 100%;
        height: 100%;
        position: absolute;
        top: 0;
        left: 0;

        & > div {
            position: absolute;
            width: 100%;
            height: 100%;
            border-radius: 0.6rem;
            border: 2px solid var(--button-color);
            border-top: none;
            border-left: none;
            right: -6px;
            bottom: -6px;
        }
    }

    &:hover {
        transform: translateX(2px) translateY(2px) !important;
        color: #fff;
        text-decoration: none;

        &::before {
            width: 100%;
        }

        .buttonShadow > div {
            right: -4px;
            bottom: -4px;
        }

        svg {
            transform: translateX(4px);
        }
    }

    &.outline {
        --button-hover-color: var(--ifm-color-primary);
        color: var(--ifm-color-primary);
        background: none;
        border: 2px solid var(--button-color);

        &::before {
            border-radius: 0.3rem;
        }

        svg > line {
            stroke: var(--ifm-color-primary);
        }

        .buttonShadow > div {
            right: -8px;
            bottom: -8px;
        }

        &:hover {
            color: #fff;

            svg > line {
                stroke: #fff;
            }

            .buttonShadow > div {
                right: -6px;
                bottom: -6px;
            }
        }
    }

    &.white {
        --button-color: #fff;
        --button-hover-color: #fff;
        color: #fff;

        svg > line {
            stroke: #fff;
        }

        &.outline:hover {
            color: var(--ifm-color-primary);

            svg > line {
                stroke: var(--ifm-color-primary);
            }
        }
    }

    span {
        position: relative;
        z-index: 2;
        vertical-align: middle;
    }

    svg {
        display: inline-block;
        vertical-align: middle;
        width: 23px;
        height: 14px;
        margin-left: 30px;
        margin-top: 0;
        top: auto;
        right: auto;
        position: relative;
        z-index: 2;
        transition: all 0.25s cubic-bezier(0.215, 0.61, 0.355, 1);

        line {
            stroke: #fff;
            stroke-width: 2px;
        }
    }
}
